#include <iostream>
using namespace std;

int fac(int n) {
    if (n == 0) return 1; // (1) 边界条件
    int pre = fac(n - 1); // (2) 递归调用
    return n * pre; 	  // (3) 递推结果
}
int main() {
    // 演示：输出0到10的阶乘
    for (int n = 0; n <= 10; n++) {
        int f = fac(n);
        cout << n << "!=" << f << endl;
    }
    return 0;
}